Esprit Open Long Term Research Project #20197 { Pagespace
نویسندگان
چکیده
This paper studies how the WWW is evolving and being redesigned to support distributed multiuser applications which involve communication, cooperation, and coordination, as in groupware and work ow systems. The authors have ongoing experience in such a subject, because they are involved in the PageSpace project, which aims at integrating WWWmiddleware with coordination technology. 1 Enhancing the WWW Computer industry and research communities are witnessing an extreme interest towards the developments of the World WideWeb, due to the innovative applications, the potential revenues, the promising but as-yet-unful lled perspectives that this new technology has brought forth. In fact, most groupware applications on the Web require active processing and coordination of services and software components. Today, multiuser activity within the Web is tied to server machines and there is no integrated mechanism that allows it to coordinate activities located at clients, such as applets. At the same time, research on middleware technology is becoming a strategic asset for the Internet, because of its potential of bringing improved access and compatibility across applications overcoming proprietary functionalities of di erent vendors. However, Web middleware in its current state does not provide enough support for multiuser applications, such as groupware or work ow, as its basic nature is that of a passive information system. We should not forget that the World Wide Web was born to provide a minimal technology for the delivery of simple multimedia hypertext documents across the Internet. For this reason, its architecture has been kept as simple as possible, with an elementary communication protocol the HyperText Transfer Protocol (HTTP) -, a simple hypertext document description language, the HyperText Markup Language (HTML) -, and an addressing schema for document resources globally valid all over the Internet Uniform Resource Locators (URLs). While at the beginning the WWW was only considered as a system able to send and receive static containers of information (documents) stored as les on the server computer, additions have been and are being studied (and sometimes provided!) for more complex interactions. For instance, instead of being organized as les in hierarchical le systems, documents could be stored by external applications, such as databases and information retrieval systems, and be accessed by having the server performing queries to these applications. Allowed requests could be so complex to require a form-based user interface for selecting the requested information; and the form-based user interface typical of current browsers could also be used for the input of data, so that, besides parameters of queries, they could be used as the user interface of client-server applications through the Internet. Since these modi cations were brought over time, in an evolutionary fashion, there has been no global design in the development of the standards, no real e ort to get rid of old and tried solutions, so that ad hoc solutions have been sought and implemented B-3 every time a new problem surfaced. This accounts for the number of di erent tools that are available to implementors to supplement WWW inadequacies. In particular, the interaction among users and applications, the access and activation of tools distributed over the Internet or even an intranet, the request and execution of remote services, the coordination of client-server interactions, have been approached with a variety of methods, most importantly CGI, each with its own characteristics and limitations. We predict that WWW middleware will rapidly evolve to include speci c high level mechanisms which will transform it in an ubiquitous, uniform, hopefully standard platform for distributed interactive applications. This paper analyzes a number of current researches which are trying to reach such a goal. In Section 2 we describe some paradigmatic applications involving multiuser interaction: for instance, both any time and real time conferencing. In Section 3 we describe the present features of WWW that are important from our perspective. In Section 4 we survey several research projects which try to use the WWW for implementing distributed interactive applications, whose software architecture we classify in server-based, client-based, and middleware-based implementations. In Section 5 we shortly describe our experiences in the PageSpace project. 2 Some interactive applications of the WWW Currently, the major use of the WWW simply consists of large scale information retrieval and exchange operations [7]. However, its ubiquity suggests its use for supporting multiuser applications involving for instance remote cooperation and document sharing. Such applications typically coordinate a dynamic number of users, which use these systems to cooperate and share services and resources. The applications we have in mind are especially tailored for supporting coordination, cooperation, and communication of several users. In Tab.1 we de ne a hierarchy of classes of collaborative system that can be classi ed according to the level of interaction they provide to the collaborating users. These systems can either be synchronous (collaboration happens in real-time, or all the users are working in the same moment) or asynchronous (collaboration happens at any time, or the system manages di erences in presence and activity of the users). Simple message and data exchange applications only require a communication mechanism to send and receive data. These basic services are needed to build applications such as IRC (Internet Relay Chat), e-mail, or teleconferencing systems [13]. Systems that require users to share documents and/or resources also need mechanisms to control and manage access and consistency of the relevant data. Speci c cooperation protocols are required to create applications that show immediately and everywhere the modi cations to the shared data set (for instance, in synchronous co-authoring systems [8, 9]) or that allow a potentially large number of users to access sections of the B-4 synchronous asynchronous communication teleconferencing e-mail (e.g., IRC) cooperation groupware DBMS (e.g., co-authoring systems) (e.g., ftp, databases) coordination distributed game-playing work ow (e.g. MUDs and VPCs) (e.g. meeting schedulers) electronic commerce messaging systems (e.g., auction systems) (e.g., electronic message boards) Table 1: A taxonomy of multiuser applications shared resource independently and modify them appropriately (as in distributed largescale database applications). When it is important to coordinate and orchestrate multiple activities and services to form a larger and dynamically con guring network of tasks, coordination mechanisms are required. These are useful to build distributed game-playing environments such as Multi-User Dungeons (MUDs) or Virtual Playing Clubs (e.g. see the Internet Chess Club www.redweb.com/chess/), as well as work ow systems to support electronic commerce [14, 3]. We give a list of typical applications in the elds of electronic commerce, groupware, and infotainement. distributed auction bidding over the WWW. Imagine an application which allows an auctioneer to sell items to the best o er over the Internet. The auction participant can either observe the auction, or make o ers herself. The participation can be either in-line (realtime) or o -line (anytime), meaning that the participant can be represented by a software agent using some knowledge-based strategy to make bids. We can easily generalize this application to deal with multi-auction situations, as in a stock exchange, or to deal with direct management of nancial or commercial portfolios. multitalk with persistence. Imagine an application which allows both real-time and any-time conferencing among remote users, meaning that a number of users can use the WWW to talk and store their dialogues for future browsing. board games: imagine for instance applications to play poker or chess over the WWW. WWW dungeons: imagine a generic platform for designing multiuser dungeons (MUD), which originally were applications supporting virtual cooperative realities in which several users could operate. These applications are rapidly becoming metaphors for designing complex groupware applications, for instance in the eld of software development and process support, concurrent engineering and shared design of industrial artifacts, and business reengineering. B-5 Figure 1: An interactive chess service realized in Java B-6 3 Interactive systems on the World Wide Web TheWWW client-server environment is implemented through a variety of di erent components,such as a number of servers of di erent brands (for instance CERN, NCSA, Netsite, etc.), a variety of client browsers (such as Mosaic, Netscape Navigator, Internet Explorer, HotJava, etc.), and a large set of application tools, such as utilities usually hidden to the users (namely Common Gateway Interface (CGI) scripts, link veri ers, spiders, worms, etc.) and end-user applications for speci c rendering or purposes (like for instance HTML editors, document browsers, audio/video players, etc.). In essence, the World Wide Web environment is the resulting illusion of several cooperating components working together thanks to three simple interaction mechanisms: Aminimal client-server protocol, namelyHTTP, allowing clients (also said browsers) to fetch MIME-compliant data resources; A general, global addressing schema, namely URIs, providing unique global identication of data collections and other network resources, of which Unique Resource Locators (URLs) are a subset providing precise information on the correct place to address and the protocol to use when accessing them. URIs identify both local and remote resources accessable either directly or through the activation of processes; A simple markup language, namely HTML, allowing resources to be described as multimedia pages (hypertext documents) containing several types of formatting instructions, hypertext links, and form-like interactive objects. Actually Unique Resource Locators (URLs) allow clients to request data from several di erent kinds of servers, such as HTTP, SMTP (e-mail), NNTP (news), FTP, etc., with a simpli ed and uni ed access and speci cation syntax. HTTP is a minimal asynchronous communication protocol for the rapid speci cation and output of named resources. Typical features of HTTP are the statelessness of the connections (the context must be re-established completely for every connection), the minimality of the dialog (each connection consists of one request and one response only: for instance, since images are stored in resources external to text data, in order to fetch a document containing ve images six connections are necessary), and the directionality of the connection (clients can only connect to servers, and never receive any connection request from them). Hypertext Markup Language (HTML) is a bare-bone descriptive markup language derived from SGML (it is actually an implementation of an SGML DTD). Its strength and fame lies in the anchor, i.e., the so called \A" tag, which allows to associate a part of the text or the image to a URL which is accessed when the user clicks on the text itself. This implements hypertext links that can span through all data resources accessible via Unique Resource Identi ers (URIs), i.e., through all documents of the whole World Wide Web. This basic picture has seen several enhancements, and now there are many more functionalities available. Here is a list of widely known and available features, or even standards. B-7 Common Gateway Interface. Instead of a static document (a le), an URL may indicate an application stored on the server. Upon requesting that URL, the server will activate the application and send back, as a response, the output of the application itself. Most HTTP servers provide support for CGI, and Perl and shell script languages (as well as more traditional languages such as C or C++) have been often used for these special applications, or for creating interfaces between existing applications and the Web (e.g. SQL databases, etc.). Proxy brokers. The protocol ruling client-server interactions is so simple, unsafe, and ine cient that often it is necessary to introduce a broker in between the browser and the server, namely a proxy. The proxy is an intermediate lter between WWW clients and servers, collecting all HTTP requests from the clients, possibly performing them so as to receive responses from the servers and then delivering the results back to the clients. Proxies are typically used for caching frequent responses or for security reasons. Server includes. The staticity of HTML documents is enhanced if the server is enabled to add context dependent information on the y. Just before transmitting a document, the server may parse it and react to some special commands included in the HTML code, substituting them with the result of a computation. Commands include the execution of CGI applications, the insertion of external documents, and the current value of an environment variable (e.g. the number of visitors of a site). Both NCSA and Spinner HTTP servers o er this kind of service. Client pulls. By including the "Refresh" header line on the transmission of a document, the server forces the client to connect and download the same document after a given amount of time. By including such a line regularly, and keeping the refresh time su ciently low, it is possible to produce dynamically changing documents: for instance, continually changing some data (e.g. stock prices) or displaying in sequence evolutionary pictures, thereby implementing a rudimentary sort of animation. Server pushes. By transmitting the remote document as a multipart MIME object, it is possible to perform a similar e ect: for instance, a CGI application can control the transmission of dynamic data by sending each state of the document as a single part of the multipart MIME object. The HTTP connection is maintained throughout the transmission of the whole object, and the browser will display each state as soon as it was received. Image maps. B-8 Upon clicking on special images of an HTML document, the browser will send the coordinate of the click to a CGI application on the server, that will compare them with the coordinates of the hot objects contained in the picture, as described by a table. If the click happened within an object, an associated action is undertaken, sending to the browser another linked document. Netscape has introduced in-line maps: the table of hot objects is contained within the HTML document itself, and the browser, instead of activating an imagemap application on the server, checks the map itself and loads the connected document. Browsers enabled for scripting languages. Scriptable browsers are becoming common; a little list of scripting languages include Java, Javascript, Safe-Tcl, Perl, Python, etc. HTML documents either contain or refer with URIs to active objects (executable code or interpretable scripts), which are then exectued during the display of the document or upon speci c user-events. 3.1 Web and interoperability middleware Middleware is a new word denoting a variety of software packages and abstractions, in general directly underlying networked applications and sitting on lower software abstractions, like network drivers and protocols. A fastly spreading kind of middleware is interoperability middleware, namely software platforms useful to integrate and coordinate single applications. For instance, Microsoft OLE (Object Linking and Embedding) and OSF OpenDoc are interoperability middleware platforms usful to build document centric systems. Instead, CORBA is a standard describing how stand alone, but compliant, applications (typically written with object oriented languages) can interact and cooperate. Clearly, such platforms are very interesting for software designers of Web based interactive applications. In fact, it is very attractive fo instance to have Web based interfaces to commercial applications like word processors and spreadsheets. For instance, thanks to OLE technology Microsoft has been able to transform its most popular word processor in a Web browser simply adding a plug-in. Currently, this way of building Web based applications is the battle eld of commercial wars. Netscape has introduced ONE (Open Network Environment) precisely to show that even its Navigator browser can interoperate with other ONE-compliant applications. Microsoft has also introduced the OLE middleware for Web, namely ActiveX. These platforms are actually a set of interface de nitions providing functions for dragand-drop interoperability, for document/container cooperation, for object persistence, for dynamic name resolution, for transfering standard format data between objects, for embedding serialized objects within container documents such that the container knows nothing about the structure and function of the embedding, and for in-place controls similar to HTML-embedded Java applets. Most of this stu can be (and has been) de ned in Java as well, in a platformindependent way. B-9 4 Web interactions: some proposals Middleware standards such as CORBA and DCE are the results of the e ort of industry committees consecrated to making commercial applications interoperate as smoothly and as painlessly as possible for the application designer, the system developers, and for the nal users. These platforms provide standard ways to de ne, locate and request computational services from participating applications, both locally and remotely. Middleware solutions may help the WWW de ne a standard and unique way to access and execute remote services, letting it potentially become the standard interface to all networked services available now and in the future. However, middleware enhancements are not enough. What still lacks is a conceptual and technical paradigm for activity on the web, namely a paradigm that should let developers build complex interactive systems based on services provided by remote applications, making use of the WWW, and exploiting each technology to its best. A technology that allows the sporadic and nomadic network presence of web users and yet also allow complex interactions to take place. Several research e orts currently involving the Web are concerned with enhancing various functional features. Being based on a client-server software architecture, the WWW subject to be extended in three di erent parts: either the server, or the client, or the communication protocol, or a combination of them. Here we present a list of academic and industrial projects classi ed according to these three categories. 4.1 Extensions to the server In the \server-based" category we include several types of extensions that involve modi cations or extensions to the HTTP server. In these cases, neither the communication protocol nor the client are modi ed. The easiest and simplest extensions are CGI applications that perform some proactive task or interface the WWW client to an external environment. Proxies are also used for extending the Web: by receiving all WWW requests from a client and performing the connection itself, a proxy has the opportunity, besides ltering and caching the content, to add or modify the requested information, providing extended functionalities. Finally, it is possible to augment an HTTP server itself by introducing new methods and functionalities. All these methods can then be used in conjunction to extensions to the markup language of the document themselves: respectively the CGI application, the proxy, or the server itself will parse the document before delivering it to the client, identify the tags using the extended language, and substitute them with the appropriate content. The WU Linda Toolkit [16] is a simple interface between a WWW browser and an HTTP server based on a Linda tuple space implementation. Access to a shared tuple space is provided, and users can ll in an HTML form with the appropriate Linda command to interact with it. The main application on show is a disc-load viewer that allows a rst glance check of current disk usage of the computers of a cluster. Each computer posts tuples describing its current load. These tuples are B-10 then collected and shown in a graphical manner by the application. The system is also planned to support a stock exchange simulation and a multiuser game. (path!http://exai3.wu-wien.ac.at/usr/schoenf/linda/!) WebBroker by Digital [11] is an interface to a standard set of information tools used by Digital to make available to the public several kinds of business information, from press releases to prices and order status lookups. The WebBroker is a CGI application that performs user authentication and pro ling using an internal database, selects and activates the necessary services through a CORBA-compliant object system, and merges the output with appropriate meta-HTML documents, delivering back the response in an understandable format. WISE is a project management system implemented through WWW. Project issues and agendas are received, recorded and attributed to engineers on a personal basis. Engineers can log, retrieve and examine problems and bugs, while software managers can track and measure the progress of the project and examine the appropriate metrics through graphical depictions. WISE access is given by HTML forms and anchors interacting with a SQL database via CGI scripts. research.ivv.nasa.gov/projects/WISE/wise.html OreO [4] allows a complete exploitation of proxies capabilities, being a proxy toolkit for creating generic lters between unmodi ed browsers and unmodi ed servers. Several example applications are realized, among which an URL validator, several kind of load and tra c monitors, a group annotator, a full-text indexer. The WWWTV application of the WWWinda project [10] makes use of the proxy capability. In their implementation, the proxy is an application local to the client itself. After having received an HTTP request from the client, performed it and received the response, the proxy application checks for the presence of a special HTML comment in the response and executes the command contained therein. The proxy is a generic TCL interpreter, so the command can be any valid TCL script. This architecture is used to inform a coordination tool to start or end video and audio viewers, so that the HTML document and the audio and video tools all start at the same time. As mentioned, many HTTP server de ne their own extension language for adding dynamically determined content to HTML documents. Every time a document is requested, it is parsed for special command tags that are then substituted with some relevant text. It is therefore possible to include external les, perform variable substitutions, and execute external (server-side) applications. (http://spinner.infovav.se/) (http://hoohoo.ncsa.uiuc.edu/) Web* [1] is a single CGI application that gives access to a complete scripting language (TCL-Tk) within plain HTML documents. A Web* document mixes HTML B-11 data and TCL script invocations, which are performed on the server when the document is requested. Each script invocation is then substituted by its output before sending the document to the client. Since CGI applications are required to be stateless, conforming to the statelessness of the HTTP protocol, it is impossible for Web* scripts to store states (such as variables' values) between successive invocations. Thus, Web* sends the state of a TCL script (the list of active variables) back and forth as parameters of successive invocations of the script itself. External services are accessible through the CORBA-compliant Orbix system, which is completely interfaced with the Web* application. HTMLscript is a CGI application that also supplements HTML with its own set of extensions. It provides capabilities similar and greater than the one available through server includes without requiring any specialized server. On the other hand, it is necessary that all documents containing the extended set of HTML tags are requested through the CGI application, and not directly, for the substitution to take place. (http://htmlscript.volant.com/) Next Software, Inc created WebObject, a connection engine that allows integration of external applications to the Web. Using WebObject the programmer describes in general OO terms the behavior of the interface to an existing application. Generic HTML templates, script declaration and script source codes are used to create the building blocks for the interface. The system will take care of creating the actual HTML pages, and managing the CGI interaction with the external application. Load balancing, dynamic HTML creation and state management between connections are also featured. HTML templates are plain HTML documents that may contain WebObject tags describing elements (variables or the output of methods) to be substituted in the text. http://www.next.com/WebObjects/WebObjectsDynamic.html http://www.next.com/WebObjects/Datasheet.html A more complex interaction between the WWW and a tuplespace is provided by PageSpace (see Sect.5). 4.2 Extensions to the client The client provides the most evident place for extensions to the Web to be implemented. Extensions to the client fall in several di erent cathegories, either dating back to the rst days of the Web, or brand new and still not completely explored. The rst extensions were "helpers", namely external applications that were activated by the client whenever a document of an unknown data type was received. Modular browsers separate all the di erent parts of a WWW client (network access, data interpretation and data visualization, and submits them to di erent and independent modules or applications. Plug-ins overcome the main drawback of helpers, the fact that the information is shown in an external window outside of the navigation context and with a di erent interface. B-12 Applets are small applications that are run directly within the browser's window by an appropriate applet interpreter. Scripts nally allow the document itself to contain the code of its extension. The most famous example of extensible client is of course Netscape Navigator. The current release (3.0) allows external helpers, plug-ins according to a speci ed set of APIs, applets written in Java, and scripts written in Javascripts. (home.netscape.com/eng/mozilla/2.0/handbook/plugins/index.html) In SHAREd Web [12] several concurrent applications are activated as helpers to the main WWW client to create a complete collaborative environment for a team of designers working on a project. Helper applications include a Yellow Page listing of available services, related projects and relevant faculty, sta and research people, a multimedia messaging system allowing for transparent overlays of drawings and notes and pointer gestures recording, and a MBone interface for audio, video and shared whiteboard between collaborators. The WWWinda [10] approach is based on a modular browser. Since the integration between WWW browsers and their helper applications is usually quite rudimental (it is only possible to activate the external application and to deliver the data to be displayed), the WWWinda research team designed a exible, modular WWW browser architecture based on the Linda coordination language. Several independent tools, each implementing a di erent part of the whole WWW browser, are activated according to needs, sharing screen space, HTTP responses, and user interaction. This allow for a highly modular architecture, where new services and tools can be added without modi cations to the others. In order to allow collaboration between modules, they are implemented according to the Linda coordination technology: all modules make use of a shared workspace. Tuples allow to extend the simple \activate with these data" paradigm of browsers' helper applications to a more complete signaling protocol. Current examples include a musical orchestration system (called \distributed karaoke", Fig.2), in which several independent instruments (possibly even running on di erent machines) extract from the shared Tuplespace the tune to be played note by note. No instrument is aware of how many other instruments are present, and new ones can be added on the y, even in the middle of a note. Visual Obliq is a developer tool allowing programmers to create fairly complex distributed applications in an extremely short time, based on the Obliq distributed programming language. The Safe Visual Obliq Interpreter is a Obliq interpreter that can be run on WWW clients. Applications can be accessed and downloaded automatically from the network and used in a secure environment: the Obliq interpreter in fact denies access to any local system resource. The Interpreter is de ned as an external helper, and is automatically activated whenever the user requests an Obliq application through a standard HTTP connection. http://www.cc.gatech.edu/gvu/people/Phd/Krishna/IWHD.html: Cygnus Software is creating GROW, a programmable WWW browser that can extend, upgrade and modify itself over the network. GROW is substantially an B-13 Figure 2: A page showing a musical keyboard for distributed karaoke in WWWinda B-14 extendible library that can be used to create networked applications. It looks like a language and it is based on GUILE, the GNU extension language library. Each module can be created independently and downloaded into the user's computer over the network, allowing also for easy and automatic upgrades of outdated modules. http://www.cygnus.com/~tiemann/grow/about-grow.html http://www.cygnus.com/~tiemann/grow/ MMM is a WWW browser implemented in Caml Special Light using the CamlTk4 library. Available on several architectures based on X-Windows, MMM supports applets written in Caml Special Light, including graphics (animated or interactive) and browser extensions. Applets are safe, with the help of strong typing and authentication. http://pauillac.inria.fr/~rouaix/mmm/ The Grail browser is built and extendible with Python, an object oriented programming language; (http://monty.cnri.reston.va.us/grail) The SurfIt! browser supports extensions and applets written in Safe-Tcl. (http://pastime.anu.edu.au/SurfIt/) 4.3 Extensions to the communication protocol The HTTP protocol is extremely limiting especially when dealing with active, proactive and interactive applications. The atomicity, statelessness and directionality of the HTTP connections prevent completely bi-directional dialogues to be established in the WWW environment. Research is directed towards extending the HTTP protocol for supporting long-lasting connections, providing a separate communication protocol for bidirectional communications (which could either telnet or an autonomous one), and substituting the HTTP protocol altogether for a new one. HTTP-NG is the new communication protocol meant to substitute HTTP in the coming years. At the basis of HTTP-NG lies a new connection model, thought to overcome the intrinsic limitations of the atomicity of the current HTTP. HTTP-NG will allow multiple requests to be sent in a single connection, and the request to be received at the same time and in any order, by creating one bidirectional control channel, and as many communication channel as needed to transmit the requested objects. http://www.w3.org/pub/WWW/Protocols/HTTP-NG/http-ng-status.html Galacticomm has released Worldgroup 2.0, a series of Netscape plug-ins that allow di erent and complex interactions between users. Among them, a polls and questionnaire tool, a group messaging application, a teleconference, a remote le management tool, and a stateful on-line shopping application. HTTP and Netscape B-15 are used just as a launching platform: each activated application opens an autonomous window and connects to the server using a persistent telnet connection, freeing Netscape and the HTTP server from further tra c. http://www.gcomm.com/show/wg20.html Virtual Places is a chat application available as an applet that can be activated within a Netscape browser. The application established an independent, persistent connection with the chat server, which is then independent of the HTTP channel. http://gnn.com/vplaces/ 4.4 Integration of WWW and middleware Other developments aim at integrating HTTP servers into middleware environments, either by providing standard CGI scripts, or by providing direct programmable access to network services (for instance, providing classes for Java applets). CGI access scripts are generic gateways to the large-scale middleware environment. They do not provide access to speci c CORBA or DCE services, but rather to the whole universe of available services. In some sense, therefore, the stack composed of the HTTP connection, the HTTP server and CGI application forms a single, new communication channel between the Web client and, respectively, the CORBA and the DCE environments. Most notably, the middleware layer helps in improving reliability scalability and generality of distributed WWW applications. In a conventional situation every query corresponds to one CGI process thereby overloading both the HTTP server and database host with a potentially large number of processes. In a situation based on CORBA or other middleware layers, these can keep connections active with a database and be replicated across a large number of hosts, thus balancing the load of incoming requests from HTTP connections. ANSA is pursuing the integration of WWW technologies and CORBA-related standards ([15]). Their approach is two-sided: on the one hand, they are creating a standard set of CGI gateways to allow bidirectional interaction between a CORBA based environment and HTTP tools (CORBA clients accessing to HTTP resources and HTTP software accessing CORBA distributed objects). On the other hand, they are building a set of WWW tools to integrate and replace HTTP: a server that can provide services using both HTTP and IIOP (the Internet Inter-ORB Protocol providing the connection layer to all CORBA 2.0 compliant platforms) and a Arena-based browser using IIOP as its connection mechanism. Marco is a CGI gateway to OSF's DCE servers ([2]) developed as a demonstration of a proposed general architecture for integrating generic middleware components into the WWW through CGI. Two modules are identi ed: a \type manager", which knows about data contained in the middleware services connected, and a \trader", which knows about the details of service instances and interface descriptions of the services connected. A general interaction protocol is de ned, allowing clients to B-16 identify the service through a two-step request, receive an HTML form document suited to the kind of service requested, and perform the most e cient request. Sun is marketing NEO, a set of administrative and developers' tools to easily create and maintain distributed applications. NEO supports existing standards, and in particular the CORBA brokers and IDLs. One of the developers tools tat are being o ered as part of NEO is JOE, a set of Java libraries that allow Web applets to transparently communicate with NEO applications and, by extension, with the CORBA environment. Joe includes an ORB (CORBA's object request brokers) that is automatically dowloaded onto Web browsers with the Java applets. Joe also includes an IDL (Interface De nition Language) compiler which automatically generates associated Java classes from interface de nitions of NEO objects. http://www.sun.com/sunsoft/neo/external/dev-corner/faq/neo-faq.html http://www.sun.com/sunsoft/neo/external/prod_specs/JOE_Overview.html Microsoft is proposing the DCOM protocol (Distributed Component Object Model), a protocol for object-oriented remote procedure calls for distributed applications ([5]). The protocol consists of a set of extensions to DCE remote procedure calls, following the COM (Component Object Model) speci cation. DCOM provides solution for data marshaling, security and non-coordinated evolution of interfaces. The Jada environment has been created at the University of Bologna within the Pagespace project to provide a distributed, coordinated environment based on Java and Linda. Jada creates a tuplespace available to agents loaded as Java applets on Web browsers, which connect to it through a proprietary protocol. http://www.cs.unibo.it/~rossi/jada/ 5 The PageSpace approach Web browsers supporting Internet programming languages such as Java allow activity at user interface level in the form of applets. However, languages like Java need integrated middleware to coordinate activities tied to multiple, distributed clients. Coordination has to be centralized at some server to which all users participating in an application have to connect to. Thereby, the activity located at the browser does not really make the application distributed, as applets at the browser cannot connect to other applets providing services to them directly. In fact, providers of Java technology are developing middleware in the form of Java libraries called Java RMI (Remote Methods Invocation), to interface (new) remote applications written in Java as well, and JavaIDL (Interface Description Language), to interface via CORBA legacy applications written with other languages. In the context of the UE PageSpace project we have developed an original solution to this problem. In fact, the PageSpace [6] is a platform to support distributed applications on the WWW. It introduces a notion of coordination space for active objects the agents which are able to both use and provide services from an to other agents, without requiring centralized coordination from servers. B-17 Distributed PageSpace applications involve heterogeneous machine-, networkandoperating-system architectures. Coordinating agents in such an environment means tomake these heterogeneities transparent to the programmer. Transparency of networkheterogeneity is achieved by using the Internet middleware underlying the communica-tion platform. Transparency of di erent hardware architecture and operating systems isprovided by Java.In fact, the PageSpace is build on a set of existing technologies:Coordination technology provides the conceptual platform for the coordination of ac-tivities amongst asynchronously working collaborating agents. Coordination technologyhas been initiated by the language Linda. The Linda model of coordination has beentested by us in the form of Paradise (by Scienti c Computing Associates (TM)), a mul-tiple tuple space platform. Since Paradise is proprietary and not matched with Java, wehave developed a multiple tuple space platform completely integrated with Java.We remark that the underlying basic conception of uncoupled coordination has beensubject to a large variety of research projects, focusing on parallel, distributed, and opendistributed systems, on its theoretical foundations by giving semantics to coordinationlanguages, and on a number of implementation oriented research concerning the embed-ding of coordination languages and their e cient implementation.Web technology provides a wide-spread communication and presentation platform toPageSpace. Browsers allow at least the access to the PageSpace and with HTML a uniformgraphical interface for the applications can be de ned.Java technology provides a uniform processing platform. Java is popularized by itsintegration into standard Web-browsers and is available on all major hardware platforms.The PageSpace integrates these basic building blocks and thereby adds value to them.PageSpace uses Java as the implementation language for the platform, as well as theapplication programming language enhanced with a high level coordination support fordistributed, concurrent agents to Java. The PageSpace adds value to the underlying build-ing blocks by integrating them in a manner in which the extensive reuse and combinationof existing and wide-spread complementary technologies leads to a platform that aims atsupporting real-life applications. Our guideline is to add the coordinating glue to bindthese technologies together, rather than extending them individually.6 ConclusionsA discussion list exists collecting the WWW community interested in interactivity overthe WWW. In such a list, the discussion is basically centered on three topics: clientextensibility (in terms of scripting, modularizing or activating external components), clientGUI support (in terms of extending the possible activities the user can be engaged into),and enhanced communication protocol (in terms of providing support for stateful protocolsand client callbacks).The list is accessible at http://www.geom.umn.edu/hypernews/get/interactive/index.html.B-18 References[1] G. Almasi et al. Web*: A Technology to Make Information Available on the Web. In Proc.4th IEEE Workshop on Enabling Technology: Infrastructure for Collaborative Enterprises,pages 147{153, Berkley Springs, WV, 1995. IEEE Computer Society Press.[2] A. Beitz et al. Integrating WWW and Middleware. In R. Debreceny and A. Ellis, edi-tors, Proc. 1st Australian World Wide Web Conference, Lismore, NSW, 1995. NorsearchPublishing.[3] A. Bhimani. Securing the Commercial Internet. Communications of the ACM, 39(6):29{35,June 1996.[4] C. Brooks, M. Mazer, S. Meeks, and J. Miller. Application-Speci c Proxy Servers as HTTPStream Transducers. In Electronic Proc. 4th Int. World Wide Web Conference \The WebRevolution", Boston, MA, December 1995.[5] N. Brown and C. Kindell. Distributed Component Object Model Protocol { DCOM/1.0,1996.[6] P. Ciancarini, A. Knoche, R. Tolksdorf, and F. Vitali. PageSpace : An Architecture toCoordinate Distributed Applications on the Web. Computer Networks and ISDN Systems,28(7-11):941{952, 1996.[7] D. Eichmann. Advances in Network Information Discovery and Retrieval. Int. Journal onSoftware Engineering and Knowledge Engineering, 5(1):143{160, March 1995.[8] C. Ellis, S. Gibbs, and G. Rein. Groupware: Some Issues and Experiences. Communicationsof the ACM, 34(1):38{58, January 1991.[9] Y. Goldberg, M. Safran, and E. Shapiro. Active Mail A Framework for ImplementingGroupware. In Proc. ACM Conf. on Computer Supported Cooperative Work (CSCW),pages 75{83, November 1992.[10] Y. Gutfreund, J. Nicol, R. Sasnett, and V. Phuah. WWWinda: An Orchestration Servicefor WWW Browsers and Accessories. In Proc. 2nd Int. World Wide Web Conference,Chicago, IL, December 1994.[11] E. Hastings and D. Kumar. Providing Customers Information Using the WEB and CORBA:Integrating Transactions, Objects, and the Web. In Electronic Proc. of the Second WorldWide Web Conf. '94: Mosaic and the Web, Chigago, IL, 1994.[12] V. Kumar, J. Glicksman, and G. Kramer. A SHAREd Web To Support Design Teams.In Proc. 3rd IEEE Workshop on Enabling Technologies: Infrastructure for CollaborativeEnterprises, Morgantown, WV, April 1994.[13] M. Macedonia and D. Brutzman. Mbone Provides Audio and Video Across the Internet.IEEE Computer, 27(4):30{36, June 1994.[14] P. Panurach. Money in Electronic Commerce. Communications of the ACM, 39(6):45{50,June 1996.[15] O. Rees, N. Edwards, M. Madsen, M. Beasley, and A. McClenaghan. A Web of DistributedObjects. World Wide Web Journal, 1(1):75{88, 1995.B-19 [16] W. Schoenfeldinger. WWW Meets Linda. In Proc. 4th Int. World Wide Web Conference,pages 259{276, Boston, MA, December 1995.B-20
منابع مشابه
Esprit Open Long Term Research Project #20197 – Pagespace Report A: Redesigning the Web: from Passive Pages to Coordi- Nated Agents in Pagespaces
The Web in its current state does not support distributed applications well. Existing approaches are oriented towards centralized applications at servers, or local programs within clients. To overcome this deficit, a framework for distributed, coordinated agents within the Web is designed with PageSpace. We take a specific approach to coordinate agents in PageSpace applications, namely variants...
متن کاملLong Term Research Project # 20197 – PageSpace Report D : Laura – A Service - Based Coordination Language
Open distributed systems are computing systems that can be characterized by a heterogeneity of involved machineand network architectures as well as of the data processed. They have to be able to integrate existing applications, to cope with the use of multiple programming-languages, and potentially high dynamics by joining and leaving components. The coordination language Laura is designed to f...
متن کاملDWQ : ESPRIT Long Term Research Project , No 22469
Client applications usually hold (derived) subsets of the database contents under their control. The incremental maintenance of such externally materialized views is an important open problem. In addition to some necessary changes in the known view maintenance procedures the issue of translating updates through an API and a way for clients to accept such updates have to be de ned. This paper pr...
متن کاملOverview on Recent Activities in Speech Systems Evalua
This paper discusses issues in evaluating spoken language dialogue systems in terms of technical performance and end-user acceptance. Recent efforts in this domain have been carried out in the framework of two major research initiatives: the European Esprit long-term project Spoken Language Dialogue Systems and Components Best practice in development and evaluation (DISC) and the US American DA...
متن کاملThe ESPRIT LTR Research Project: "Nonlinear Model-Based Analysis and Description of Images for Multimedia Applications (NOBLESSE)"
The project \Nonlinear Model-Based Analysis and Description of Images for Multimedia Applications, Noblesse" is an ESPRIT Long Term Research action funded by the Commission of the European Communities. It has started in January 1996 and has a duration of three years. In this project, nonlinear techniques are developed that enable a model-based symbolic description of images and image sequences,...
متن کاملESPRIT IV Domain 4: Long Term Research - Reactiveness to Industrial Needs NANOS Effective Integration of Fine-grain Parallelism Exploitation and Multiprogramming
NthLib is the concrete n-RTL implementation done in the context of the NANOS project to support multi-level and fine-grain parallelism in a multiprogrammed environment. This deliverable presents the design decisions we have adopted in order to achieve the previous goals, the structure and implementation of the library and some starting evaluation measurements.
متن کامل